package fr.neyb.framework.observer;

public interface Observable {

    /**
     * Adds an observer to the set of observers for this object, provided
     * that it is not the same as some observer already in the set.
     * The order in which notifications will be delivered to multiple
     * observers is not specified. See the class comment.
     *
     * @param   o   an observer to be added.
     * @throws NullPointerException   if the parameter o is null.
     */
	void addObserver(Observer o);

	void deleteObserver(Observer o);

	void deleteObservers();

	boolean hasChanged();

	int countObservers();

	void notifyObservers();

	void notifyObservers(Object arg);

}
